package xiongwei.jiang.property;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 企业微信配置类
 *
 * @author 天之蓝
 */
@Data
@ConfigurationProperties(prefix = "wxwork")
public class WXWorkProperties {
    /**
     * 企业 corpId
     */
    private String corpId;
    /**
     * 通讯录
     */
    private AddrBook addrBook;
    /**
     * 打卡
     */
    private Checkin checkin;
    /**
     * 自建应用
     */
    private App app;
    /**
     * 自建应用回调
     */
    private Callback callback;
    /**
     * 机器人
     */
    private Bot bot;

    @Data
    public static class AddrBook {
        /**
         * 通讯录 secret，appIndex 为 -1
         */
        private String secret;
    }

    @Data
    public static class Checkin {
        /**
         * 打卡 secret，appIndex 为 -2
         */
        private String secret;
    }

    @Data
    public static class App {
        /**
         * 自建应用 agentId，支持多个，agentId 和 secret 必须成对出现，appIndex 从 0 开始
         */
        private Integer[] agentId;
        /**
         * 自建应用 secret，支持多个，agentId 和 secret 必须成对出现，appIndex 从 0 开始
         */
        private String[] secret;
    }

    @Data
    public static class Callback {
        /**
         * 自建应用回调 token，支持多个，token 和 encodingAesKey 必须成对出现，callbackIndex 从 0 开始
         */
        private String[] token;
        /**
         * 自建应用回调 encodingAesKey，支持多个，token 和 encodingAesKey 必须成对出现，callbackIndex 从 0 开始
         */
        private String[] encodingAesKey;
    }

    @Data
    public static class Bot {
        /**
         * 机器人 webhook 地址，支持多个，botIndex 从 0 开始
         */
        private String[] webhookUrl;
    }
}
